<?php

/**
 * LoginForm class.
 * LoginForm is the data structure for keeping
 * user login form data. It is used by the 'login' action of 'SiteController'.
 */
class LoginForm extends CFormModel
{
	public $username;
	public $password;
	public $verifyCode;
	private $_identity;

	/**
	 * Declares the validation rules.
	 * The rules state that username and password are required,
	 * and password needs to be authenticated.
	 */
	public function rules()
	{
		 return array(
            // username and password are required
            array('username', 'required', 'message' => '请填写用户名'),
            array('password', 'required', 'message' => '请填写密码'),
            // rememberMe needs to be a boolean
            array('verifyCode', 'length', 'max' => 4),
            // password needs to be authenticated
            // array('password', 'authenticate'),
        );
	}

	/**
	 * Declares attribute labels.
	 */
	public function attributeLabels()
	{
		  return array(
            'username'=>'用户名',
            'password'=>'密码',
        );
	}

	/**
	 * Authenticates the password.
	 * This is the 'authenticate' validator as declared in rules().
	 */
	public function authenticate($attribute,$params)
	{
		// if(!$this->hasErrors())
		// {
		// 	$this->_identity = new UserIdentity($this->username,$this->password);

		// 	 if(!$this->_identity->authenticate()){
  //               $this->addError('password','用户名或密码错误,请检查.');
  //           } 
		// }
	}

	/**
	 * Logs in the user using the given username and password in the model.
	 * @return boolean whether login is successful
	 */
	public function login()
	{
		if($this->_identity===null)
		{
			$this->_identity = new UserIdentity($this->username,$this->password);
			$this->_identity->authenticate();
		}
		if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
		{
			// if($this->_identity->admin){
			// 	Yii::app()->user->returnUrl = "?r=admin/admin";
			// }else{
				Yii::app()->user->returnUrl = "?r=user/admin";
			// }
			Yii::app()->user->login($this->_identity);
			return true;
		}
		else if($this->_identity->errorCode===UserIdentity::ERROR_USERNAME_INVALID){
			$this->addError('username','用户名或密码错误');
		}else if($this->_identity->errorCode===UserIdentity::ERROR_PASSWORD_INVALID){
			$this->addError('password','用户名或密码错误.');
		}
		return false;
	}
}
